package com.luofan.mapper;

import com.luofan.entity.dto.NoticeUserDTO;
import com.luofan.entity.po.Notice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.luofan.entity.vo.NoticeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 公告表 Mapper 接口
 * </p>
 *
 * @author 
 * @since 2025-03-26
 */
@Mapper
public interface NoticeMapper extends BaseMapper<Notice> {

    //根据用户id获取公告列表
    List<NoticeVO> listNoticeByUserId(@Param("id") Long id);

    //管理员 获取所有公告的列表
    List<NoticeVO> listAllNotice();

    //用户确认收到公告
    void confirmReceiveNotice(@Param("currentUserId") Long currentUserId,
                              @Param("noticeId") Long noticeId);

    //获取所有收到和没收到公告的用户信息(姓名,邮箱,教研室名称,是否收到通知)
    List<NoticeUserDTO> listNoticeUserByNoticeId(@Param("id") Long id);

    //添加通知信息到notice表
    int saveNotice(Notice notice);
}
